home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / hity wydania / Ubuntu 9.10 PL / karmelkowy-koliberek-desktop-9.10-i386-PL.iso / casper / filesystem.squashfs / usr / share / pyshared / telepathy / utils.py < prev   
Text File  |  2009-07-02  |  2KB  |  55 lines

  1. # telepathy-python - Base classes defining the interfaces of the Telepathy framework
  2. #
  3. # Copyright (C) 2008 Collabora Limited
  4. #
  5. # This library is free software; you can redistribute it and/or
  6. # modify it under the terms of the GNU Lesser General Public
  7. # License as published by the Free Software Foundation; either
  8. # version 2.1 of the License, or (at your option) any later version.
  9. #
  10. # This library is distributed in the hope that it will be useful,
  11. # but WITHOUT ANY WARRANTY; without even the implied warranty of
  12. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  13. # Lesser General Public License for more details.
  14. #
  15. # You should have received a copy of the GNU Lesser General Public
  16. # License along with this library; if not, write to the Free Software
  17. # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
  18.  
  19. import os
  20. import sys
  21.  
  22. def debug_divert_messages(filename):
  23.     """debug_divert_messages:
  24.     @filename: A file to which to divert stdout and stderr or None to do
  25.     nothing.
  26.  
  27.     Open the given file for writing and duplicate its file descriptor to
  28.     be used for stdout and stderr. This has the effect of closing the previous
  29.     stdout and stderr, and sending all messages that would have gone there
  30.     to the given file instead.
  31.  
  32.     By default the file is truncated and hence overwritten each time the
  33.     process is executed.
  34.     If the filename is prefixed with '+' then the file is not truncated and
  35.     output is added at the end of the file.
  36.     Passing None to this function is guaranteed to have no effect. This is
  37.     so you can call it with the recommended usage
  38.     debug_divert_messages (os.getenv('MYAPP_LOGFILE'))
  39.     and it won't do anything if the environment variable is not set."""
  40.  
  41.     if filename is None:
  42.         return
  43.  
  44.     try:
  45.         if filename.startswith('+'):
  46.             logfile = open(filename[1:], 'a')
  47.         else:
  48.             logfile = open(filename, 'w')
  49.     except IOError, e:
  50.         print "Can't open logfile '%s' : '%s'" % (filename, e)
  51.         return
  52.  
  53.     sys.stdout = logfile
  54.     sys.stderr = logfile
  55.